import { doGet, appJsonPost } from '@/network/request';
import axios from 'axios';

// 获取 CSRF Token
function getCsrfToken() {
    const name = 'XSRF-TOKEN=';
    const decodedCookie = decodeURIComponent(document.cookie);
    const cookies = decodedCookie.split(';');
    for (let i = 0; i < cookies.length; i++) {
        const cookie = cookies[i].trim();
        if (cookie.indexOf(name) === 0) {
            return cookie.substring(name.length, cookie.length);
        }
    }
    return '';
}

/**
 * 添加历史记录
 * @param {Number} resourceId - 资源ID
 * @param {Number} userId - 用户ID
 * @param {Number} historiesStatus - 历史记录状态
 * @param {String} createdTime - 创建时间
 */
export function addHistoryApi(resourceId, userId, historiesStatus, createdTime) {
    const history = {
        resourceId,
        userId,
        historiesStatus,
        createdTime
    };

    return appJsonPost({
        url: '/histories',
        data: history,
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 删除历史记录
 * @param {Number} resourceId - 资源ID
 * @param {Number} userId - 用户ID
 * @param {Number} historiesStatus - 历史记录状态
 */
export function removeHistoryApi(resourceId, userId, historiesStatus) {
    return axios.delete(`/histories`, {
        params: { resourceId, userId, historiesStatus }, // 将参数作为请求参数传递
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 查询用户的历史记录
 * @param {Number} userId - 用户ID
 */
export function getUserHistoryApi(userId: any) {
    return doGet({
        url: `/histories/list/${userId}`,
        params: { userId },
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 检查用户是否观看某个资源
 * @param {Number} userId - 用户ID
 * @param {Number} resourceId - 资源ID
 */
export function checkUserHistoryApi(userId, resourceId) {
    return doGet({
        url: `/histories/check`,
        params: { userId, resourceId },
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

// 如果需要查看某个资源的点赞总数，解开注释
// /**
//  * 查看某个资源的点赞总数
//  * @param {Number} resourceId - 资源ID
//  */
// export function getHistoryCountApi(resourceId) {
//     return doGet({
//         url: `/histories/count`,
//         params: { resourceId },
//         headers: {
//             'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
//         }
//     });
// }
